// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Super Spark Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

// Aliases
private alias object.value0 : object.timer

event ObjectMain
	if object.propertyValue == 0
		object.xpos = object[-playerCount].xpos
		object.ypos = object[-playerCount].ypos
	end if
	switch object.state
	case 0
		if object[-playerCount].value42 == 0
			temp0 = object[-playerCount].speed
			Abs(temp0)
			if temp0 >= 0x80000
				object.drawOrder = -1
				object.timer = 0
				object.frame = 0
				object.state++
			end if
		end if
		break
	case 1
		object.timer++
		if object.timer >= 3
			object.timer = 1
			object.frame++
			if object.frame >= 2
				object.state++
			end if
		end if
		break
	case 2
		object.timer++
		if object.timer >= 3
			object.timer = 1
			object.frame--
			if object.frame <= 0
				object.state++
			end if
		end if
		break
	case 3
		object.timer++
		if object.timer >= 3
			object.timer = 9
			object.state++
		end if
		break
	case 4
		if object.propertyValue == 1
			object.type = TypeName[Blank Object]
		end if
		object.timer++
		if object.timer >= 13
			temp0 = object[-playerCount].speed
			Abs(temp0)
			CheckLower(temp0, 0x80000)
			temp0 = checkResult
			CheckEqual(object[-playerCount].value42, 0)
			temp0 &= checkResult
			CheckEqual(object[-playerCount].state, PlayerObject_KnuxWallClimb)
			temp0 |= checkResult
			if temp0 == 1
				object.state = 0
			else
				object.timer = 0
				CreateTempObject(TypeName[Super Spark], 1, object[-playerCount].xpos, object[-playerCount].ypos)
				object[tempObjectPos].frame = 0
				object[tempObjectPos].state = 1
				object[tempObjectPos].drawOrder = object[-playerCount].value18
			end if
		end if
		break
	end switch
end event


event ObjectDraw
	switch object.state
	case 1
	case 2
	case 3
		DrawSprite(object.frame)
		break
	end switch
end event


event ObjectStartup
	LoadSpriteSheet("Global/Items.gif")
	SpriteFrame(-8, -8, 16, 16, 200, 33)
	SpriteFrame(-16, -16, 32, 32, 223, 116)
	SpriteFrame(-24, -24, 48, 48, 207, 149)
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event